System And Method For Motor Control Through Improved Location Measurement

ABSTRACT

A motor control determines if a motor is rotating at steady state velocity and then populates a table with information about each individual motor sector. At steady state velocity, the duration of the motor within an electrical sector is measured. The duration of the complete mechanical rotation of the motor is determined. The controller determines a ratio of the measured duration of the sector to a duration of a complete mechanical rotation of the motor. The ratio of sector duration to rotation duration is stored in a table. The controller is configured for controlling the motor using the table values.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of priority to U.S. ProvisionalPatent Application Ser. No. 63/149,907 filed Feb. 16, 2021 (pending),the disclosure of which is incorporated by reference herein.

FIELD OF THE INVENTION

The invention is directed generally to the control of motors andspecifically to the precise control of motors, such as DC motors andmulti-phase motors.

BACKGROUND OF THE INVENTION

In the area of motor control, and particularly precise motor control,such as for DC and multi-phase motors, it is critical for the motordriver circuitry to be able to know the position of the rotor element ofthe motor for providing the drive currents to measure the currentpassing through the coils of the motor. There are various differentsolutions available that might be utilized for such measurements andcontrols, but each has various drawbacks and costs.

More specifically permanent magnet synchronous motors can be controlledonly if the position of the rotor is known as it travels in rotation.The control circuitry and motor driver circuitry needs to have theposition information in order to properly energize the correct coils insequence to make the motor produce torque in an efficient manner. Theangle of the rotor in its cycle can be measured directly, or the angularposition can be deduced using various different schemes and algorithms.There are variety of control methods, that may be sensorless or sensoredmethods. Some of the more prevalent sensorless control methods beingusing BEMF zero crossing detection on the unused motor phase, or usingan observer that predicts the rotor position based on voltages andcurrents measured on the motor phases. Sensored methods might includeusing Hall-effect sensor feedback, for example. Other sensored methodsuse absolute or incremental encoder feedback or use a resolver feedback.

Sensored methods using Hall-effect sensors are widely used methods thatprovide a good compromise between accuracy of the rotor angle and priceof the implementation. Using Hall-effect sensors involves more hardwareand wiring compared to other sensorless control strategies. But suchsensored methods have the benefit of allowing maximum torque at zerospeed, while sensorless techniques struggle in that regard. Generally,in methods using Hall-effect sensors, the sensors are placed in themotor in such a way that one sensor signal goes through a high and lowperiod for every electrical cycle of the motor. The number of pole pairsof the motor will govern how many of these electrical cycles andHall-effect sensor measurements must be completed to equal onemechanical revolution of the rotor.

In a typical motor arrangement, there are usually 3 Hall-effect sensorsplaced at 120 electrical degrees around the rotor or stator therebyproviding he rotor position feedback signals. In most cases, these 3signals and their specific values in the motor rotation are interpretedas bits and for the combination, the bits are combined and interpretedas a number, that is referred to as a sector. When dealing with motorsthat use 120 degree sensor placement, a sector will represent 60 degreesof the electrical cycle. Since each pole pair of a motor will have anumber of sectors associated therewith, the total number of sectors thatreflect an entire mechanical rotation of the motor will vary.

Accordingly, the present invention is directed to evaluation of theinformation of the motor operation for the various sectors associatedwith the rotation and using the information for providing desirableangular position and speed information for better, more efficient andcost effective dynamic control of a DC or multi-phase motor, such asbrushless DC motor (BLDC) or a permanent magnet synchronous motor(PMSM).

SUMMARY OF THE INVENTION

Control circuitry for controlling a motor including a rotor, a statorand a plurality of sensors positioned in the motor, such as Hall-effectsensors is described. The sensors define a plurality of electricalsectors of the motor through which the motor will rotate. The controlleris configured for determining if the motor is rotating at a steady statevelocity. If it is, the sensors of the motor are used for measuring theduration that the motor spends rotating within each of the plurality ofelectrical sectors. Using a plurality of the measured durations withinelectrical sectors, the duration of a complete mechanical rotation ofthe motor through all of the electrical sectors is determined. Then avalue that is a ratio of the measured duration of the motor in aparticular sector to the duration of the complete mechanical rotation ofthe motor is determined and stored in a table. The table values are usedfor determining sector durations and angles for each sector and theinformation is used for controlling the motor.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate embodiments of the invention and,together with a general description of the invention given below, serveto explain the principles of the invention.

FIG. 1 is a circuit diagram of a motor control circuit system inaccordance with an embodiment of the invention that provides anevaluation of sector durations for use in the control scheme.

FIG. 2 is signal diagram of torque percentage as measured based on theangular rotation of the rotor element.

FIG. 3 is signal diagram reflective of a Hall-effect sensor signals overtime for defining motor sectors and sector durations for a rotation of arotor of an ideal motor.

FIG. 4 is another signal diagram reflective of a Hall-effect sensorsignals over time for defining motor sectors and sector durations for arotation of a rotor of a non-ideal motor.

FIG. 5 is another signal diagram reflective of a Hall-effect sensorsignals over time for defining motor sectors and sector durations for arotation of a rotor of a non-ideal motor.

FIG. 6 is graph of sector durations for the successive sectors for amechanical revolution of a motor versus an ideal sector duration forsuch a motor.

FIG. 7 is a graph of normalized noise versus the size of a runningduration sum or average for calculating motor speed in a motor.

FIG. 8 is a table of sector duration values for an ideal motor.

FIG. 9 is a plurality of tables of sector duration values for inaccordance with the invention showing the update of values in theprogression through the tables as the motor progresses in clockwise andcounterclockwise rotation.

FIG. 10 is a table of determined sector duration values fora non-idealmotor determined in accordance with the invention showing differentvalues in various sectors over the complete rotation of a motor.

FIG. 11 is a flow diagram of the evaluation of the individual sectorconditions and create of the ratio table in accordance with theinvention.

It should be understood that the appended drawings are not necessarilyto scale, presenting a somewhat simplified representation of variousfeatures illustrative of the basic principles of the invention. Thespecific design features of the sequence of operations as disclosedherein, including, for example, specific dimensions, orientations,locations, and shapes of various illustrated components, will bedetermined in part by the particular intended application and useenvironment. Certain features of the illustrated embodiments have beenenlarged or distorted relative to others to facilitate visualization andclear understanding. In particular, thin features may be thickened, forexample, for clarity or illustration.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

The present invention provides a motor controller and control processthat can identify and correct for Hall-effect placement or positionalerrors and/or rotor magnetic pole errors in an arbitrary non-ideal motorwithout having prior knowledge of these errors. The present inventionprovides an ongoing determination of the sector conditions of the motorand can make adjustments for variations that may occur over timeassociated with such Hall-effect placement or positional errors and/orrotor magnetic pole errors.

The present invention maintains sector information in the form ofduration ratios of a particular sector versus the overall duration of amechanical rotation of the motor. The controller then uses thedetermined sector durations and the stored ratios reflective of thesectors to measure the instantaneous motor speed with great accuracy atevery Hall-effect sensor transition without having to average out manyconsecutive readings.

Still further, using the knowledge of the accurate instantaneous speedand the compensated sector duration table values, the controller of theinvention accurately predicts how the rotor angle will change in timeuntil the next Hall-effect sensor transition associated with aparticular pole in the motor. In that way, because of the accurateprediction of the rotor angle, the controller can maintain a more properangle between the rotor and stator magnetic flux vectors and therebyminimize the torque ripple and audible noise and also maximizeefficiency in torque production. To that end, the present invention canbe used for more advanced commutation techniques like space-vectormodulation, even when the feedback does not provide the accuracy that isusually required for such commutation techniques.

In various of the examples as discussed herein, a motor having 3Hall-effect sensors placed at 120 electrical degrees will be used forproviding the rotor position feedback signals. As noted, in most cases,these 3 signals get interpreted as bits and after combining them, getinterpreted as a number, called a sector. When dealing with 120 degreesensor placement, a sector represents 60 degrees of the electricalcycle. The invention and methodology as described herein, however,applies to any combination or numbers of Hall-effect sensors, and polepairs and angular sensor placement in the motor. For the discussedexamples and embodiments herein, the present application uses exampleshaving 3 Hall-effect sensors placed at 120 electrical degrees around themotor, since such an arrangement is a widely used arrangement in currentmotor control.

FIG. 1 illustrates one version of a typical motor control system 10 forcontrol of a motor through Hall-effect sensor measurements implementingthe present invention. The system 10 includes a number of interconnectedcircuits for controlling the operation of the motor 12 and specificallyuses a motor drive circuit 14 that receives control signals 23 from amotor control circuit or controller 22. The motor can be an appropriatemulti-phase motor, such as, for example brushless DC motors (BLDC) orpermanent magnet synchronous motors (PMSM) or AC asynchronous motors orReluctance motors, to name a few. The motor drive circuit 14 in oneexemplary embodiment is in the form of a half-bridge circuit thatincorporates transistors 16 in an upper half of the drive circuit 14 andtransistors 18 in a lower half of the drive circuit that are selectivelypowered to conduct in cycles for the creation of current drive signals17 for the various motor coils for proper commutation of the motor.Generally, in the operation of the illustrated drive circuit 14, itmight be controlled through pulse width modulation (PWM) control signals23 sent to the various transistors 16, 18 to provide the desired U, V, Wphase current drive signals 17 to motor 12. For the measurement of theangular position of the motor 12, Hall-effect sensors may be used in themotor, as reflected by the sensor signals 40. For the necessary controland proper commutation of the motor, the invention uses the measuredsignals to determine the specific construction and operation of theparticular motor and its Hall-effect sensor, in order to provide a moreprecise and efficient motor control based on the rotor angle of therotor element of the motor.

For the measurement of current levels in the various coils of the motor12, different currents might be measured that are reflective of orassociated with the level of current directed to the individual coils.For example, the motor drive circuit 14 might use low side or groundside shunt resistors 20 that are connected with the output of the lowerhalf transistors 18 to ground. The transistors 16 and 18 are controlledby the motor control circuit or controller 22, such as a field orientedcontrol circuit. The controller 22 receives a number of inputs thatreflect conditions of the motor operation, such as the measurements ofthe coil current from the shunt resistors 20, as transformed for controlpurposes, and other inputs as described herein, such as the angular spanof the various sectors in the motor as well as the rotor speed 48 of themotor 12 or the rotor angle 44. The controller 22 includes one or moreprocessor elements that process the various inputs and generatesoutputs, such as control signals 23 for operating the drive circuit 14and the various transistors 16, 18 in accordance with one exemplaryembodiment of the invention. The processer also includes various memoryelements or memory for forming and storing tables of sector ratios asdiscussed herein. The controller 22 executes the control and measurementsteps for determining the various sector ratios of the invention andstoring and accessing them.

More specifically, as illustrated in FIG. 1, the current of the drivesignals 17 to the motor coils is measured by measuring an effectivecurrent in each branch containing the lower half transistors 18 thatprovide the drive signals 17. The measured current values 24, 26, 28 arereflective of the current drive signals 17 being directed as drivesignals in the U,V and W phase paths for the coils and may be obtainedby measuring voltages across the shunt resistors 20 through lines 24,26, 28 for coils U, V, and W, respectively, of the motor 12. The notedshunt currents and voltage are just examples, and other current andvoltage measurements associated with coil currents may be used. Themeasured voltages are directed to an ADC circuit 21 for transformationto appropriate current measurements that are then digitized for use asinputs for the controller 22 as noted herein. In one embodiment of theinvention, as illustrated in the Figures, a Clarke transformationcircuit 30 may be used to convert the time domain signals 24, 26, 28into an alpha/beta representation or frame, as is known in the field ofmotor control. A Park transformation circuit may then convert the twocomponents in the alpha/beta frame to an orthogonal rotating referenceframe (dq). Implementing these two transforms in a consecutive mannersimplifies computations by converting AC current and voltage waveforminto DC signals as known to a person of ordinary skill in the art ofmotor control. Furthermore, the control circuit 22 uses table valuesfrom a sector duration table in accordance with the invention asdiscussed herein for providing more accurate control.

Specifically, the invention uses stored table values from a sectorduration table for the motor to determine the control to be provided tothe motor associated with each sector. The stored values are reflectiveof each unique motor operation and sensor placement for a particularmotor and are then used to obtain additional key pieces of informationfor motor control, including the angle that the motor needs to beinterpolated over for control and the time for the interpolation for aparticular sector. Using those formulas, the controller can accuratelytrack the rotor's angle within the sector and consequently apply theproper voltages to the motor coils to create a magnetic field that is at90 degrees or orthogonal to the rotor's field.

Motor 12 as shown in FIG. 1 incorporates a plurality of Hall-effectsensors for providing sensor feedback signals 40 illustrated as Hu, Hv,Hw that are fed to an angle estimation circuit 42 for calculating therotor angle 44 of the motor 12 according to known methods. That is, inthe present example as discussed herein, 3 sensors are used. The rotorangle output 44 is provided to the Park transformation circuit 32 andcan be used by circuit 46 for determining rotor speed 48 in accordancewith known methods. The rotor speed input 48 is also used by the fieldoriented controller 22 for providing the motor control signals 23 to thedrive circuit. As illustrated, the control signals 23 will operate theon/off cycles of the various banks of upper and lower transistors 16, 18of the drive circuit 14 to provide the current drive signals 17 for thecoils, indicated at U, V, W, as is conventional for the coils of themotor 12 for proper motor commutation.

When using three Hall-effect sensors, the output in the form of sensorbits provides 3 separate signal bits that may result in 8 possible bitcombinations. However, for the purposes of defining 6 sectors reflectiveof a single motor rotation, motor manufacturers usually pick such signalpolarities that exclude the numbers 0 and 7 from the possiblecombinations. This results in a feedback signal from the Hall-effectsensors that represents the numbers 1 through 6 and sectors 0 and 7 aredeemed invalid and representative of disconnected or failed feedbackcircuitry. The described methodology and invention can be applied to anyarrangement of Hall-effect sensors and their signal polarities; however,we will concentrate on demonstrating the approach by using the widelyused method of tracking sectors 1-6 with 0 and 7 being consideredinvalid.

When the rotor of a motor spins, the various pole pairs or PP willengage each of the sensors and the feedback signals from the sensorswill change states in a certain pattern in the motor as the poles passthe sensors. For example, based on the sensor values, that pattern canbe interpreted as the particular sector that the rotor lies in and maychange in the following manner: 1, 3, 2, 6, 4, 5 for a single electricalrotation. Then the pattern repeats itself for each successive electricalrotation. This provides the known 6-step commutation method, where forevery sector, there are two specific motor coils that get energized inorder for the motor to produce the desired torque and continue spinningin the same direction at a desired speed. The coils are thus treateduniquely as the rotor rotates through each of the sectors based on thereadings received from the Hall-effect sensors. The sensors, through thechanges of their state, provide a duration value as to how long themotor was in the previous sector. That is, each sensor state transitionas noted by the Hall-effect sensor outputs indicates that the motor hascompleted time in the previous sector or last sector and is entering thecurrent or new sector.

Motors that incorporate three Hall-effect sensors positioned at 120degrees positioning in the motor will generally have a torque ripplebecause of the lack of resolution and positioning that is associatedwith using such sensors versus what may be achieved with a moreexpensive encoder. Hall-effect sensors provide a relatively inexpensiveability to achieve the desired motor commutation with good efficiency.FIG. 2 illustrates a typical torque ripple scenario, wherein maximumtorque may be achieved at certain peak points 92 associated with theangular rotor position. However, between certain positions, the torquemay decrease to lower values 90, such as around 86.6% of the maximum or100% torque. As illustrated in FIG. 2, this produces a certain ripplewherein a generally acceptable torque efficiency of 96% average may beachieved as illustrated by line 91. One benefit of the present inventionis that it provides the desired resolution of a more expensive encoderwhile still using Hall-effect sensors. The invention relies upon themovement of the motor to populate a table with sector ratio values asdiscussed herein. The present invention thus provides a reduced torqueripple, greater efficiency, and low noise while still avoiding the costassociated with expensive digital encoders.

The invention as described herein is applicable with six-step,sinusoidal, space-vector, or any other commutation technique thatextracts information from the Hall-effect sensor signals. In an idealthree pole pair (PP) permanent magnet synchronous motor, often referredto as a brushless DC motor, each pole of the pole pairs (3PP=6 poles)will pass the various Hall-effect sensors (3 sensors) and so there willbe a total of 18 unique sections formed by repeating the noted sixsections. That is, with the three sensors, in one rotation of the rotor,the sensors will go through the various six sector patterns a total ofthree times, one for each pole pair. FIG. 3 shows the feed signals ofsuch a three pole pair motor. The signal diagram 70 represents one fullmechanical rotation of the rotor. A motor having three pole pairs (3PP)will have six magnetic poles for triggering each of the three sensors.Therefore, every Hall-effect sensor signal, shown in diagram 70 as HallA 74 and Hall B 76 and Hall C 78 goes through three electrical cycles (acycle corresponding to a pole pair) for every mechanical revolution ofthe rotor since every mechanical revolution means a revolution of allthree pole pairs.

The signal trace 80 in the diagram 70 reflects the combination of thethree sensor signals for each electrical cycle and interprets them as asector number. The formula used in this example is:Sector=A*(2{circumflex over ( )}2)+B*(2{circumflex over( )}1)+C*(2{circumflex over ( )}0) or simply mapping the A, B and Csignals to the bits 2, 1, and 0, respectively, of the Sector number. Asis evident from the diagram 70 of FIG. 3, an ideal motor (with threepole pairs) will go through a total of 18 individual sectors to completeone mechanical revolution of the rotor. Those 18 sectors are illustratedas three repeated 6 sector portions as shown in signal trace 80 dividedby points 82. As seen, a pattern of 6, 4, 5, 1, 3, 2 is repeated threetimes.

Assuming that the motor is rotating at a steady state velocity, the timeduration that the motor spends in each sector will be the same as thetime duration in every other sector. Each of the 6 sectors represents 60electrical degrees and at steady state rotational velocity, the motorwill spend precisely the same amount of time in every one of these sixsectors. This phenomenon of the time duration that is spent in aparticular sector is used to measure the motor's speed. The timeduration in a specific sector and the specific sector is also used topredict the position of the rotor within that sector. Assuming an idealmotor, the controller 22 can very accurately calculate the speed of themotor by measuring the duration of time that the motor spends in asingle sector of the rotation as defined by the Hall-effect sensors. Theformula for motor velocity is:

V=60/t

where:

-   -   V is the speed of the motor in electrical degrees per second.    -   60 is the electrical angle that one sector covers (this will        depend on the number of Hall-effect sensors and the motor        arrangement)    -   t is the time that the motor spent in the last measured sector.

Furthermore, once the speed of the motor is known by the controller 22with great accuracy for a particular sector, the control circuit can usethat information to predict the rotor position within a particularsector. The position of the rotor in a sector is then used to provideproper energizing of the motor coils for proper torque. Specifically,the known rotor position and thus the respective known position of therotor's magnetic flux in a sector allows sinusoidal and space-vectortechniques and other motor control techniques to create a magnetic fieldthat is precisely offset from the rotor angle and the rotor flux toprovide an efficient generation of torque from the motor. Being able tofinely control the orientation of the generated magnetic field withrespect to the rotor's magnetic flux, allows the controller to minimizethe torque ripple and to thereby increase the efficiency of the motor.Generally, such control techniques usually aim at keeping the statorfield at 90 degrees (or some other precise degree angle) to the angle ofthe rotor's magnetic flux. In the past, achieving such precise fieldcontrol was usually delegated to using more expensive encoders. This isbecause Hall-effect sensor feedback has traditionally been limited toproviding the rotor's angle at the ideal 60 degree increments. Thereason control techniques like sinusoidal or space-vector modulation aredifficult to implement with Hall-effect sensor feedback are becausemotors are never ideal and so some basic assumptions for an ideal motordo not allow for accurate control. The present invention providesgreater resolution of rotor position within a sector than is achieved intypical Hall-effect sensor arrangements to provide reduced ripple,greater efficiency, and reduced noise.

More specifically, in the construction of a typical motor, theHall-effect sensors can never be placed with zero error around therotor. The various magnet elements and their position in the motor alsosuffer from the same placement error. Rotors can also be manufacturedwith sintered magnetic rings that get magnetized after sintering. Themotor construction process also suffers from irregularities in themagnetic pole placements. The magnetizing equipment may be arbitrarilyaccurate, yet the material that gets magnetized will always exhibit someangular magnetization errors in magnitude.

The graph 72 of FIG. 3 illustrates the various sectors and the durationof the sector in electrical degrees. As illustrated by points 84, eachof the ideal sectors are at 60 electrical degrees in duration. However,with typical non-ideal motors, this is usually never the condition thatis presented to the motor controller 22. Therefore, the inventionaddresses non-ideal conditions. FIG. 4 illustrates an example of arealistic motor where errors exist in the placement of the Hall-effectsensors. The errors are exaggerated to make the effect more visible.Even with perfectly spaced magnetic poles, if the Hall-effect sensorsare not placed at precisely 120 electrical degrees in the motor, thesector durations no longer represent 60 electrical degrees. FIG. 4illustrates the angular duration of the various sectors for the typicalnon-ideal motor. The errors in this example of FIG. 4 are reflective ofsensor position errors. FIG. 4 shows the significant deviation of thesector durations per sector with points 94, 96, 98 in the graph 72showing variations from the ideal 60 electrical degree ideal of graph 72and points 84 in FIG. 3. This demonstrates how especially on high polecount motors, a small error in the physical placement of a Hall-effectsensor results in a large offset error in the sensor's signal and aspecific variation of the duration of the various sectors from the idealreflected in graph 70 and 72 of FIG. 3. Also, for the various sectorsreflective of repeated sector numbers, the durations may vary as shownby the various sets of duration points 94, 96, 98 based on the polepairs. That is, the duration of a sector as it relates to one of thepole pairs may be different than the duration of the same numberedsector as it relates to another pole pair.

As noted, FIG. 4 illustrates graphs for a more realistic, non-idealmotor, with errors in the pole placements. Such positional errors mayresult from errors in the physical placement of the sensors or placementof the discrete magnets of a stator or rotor element, or may reflecterrors in the magnetization of the sintered magnet. As illustrated inFIG. 4, the various points 94, 96, 98 for each of the sectors furtherreflects that the duration can vary in the same sector numbers for eachof the 18 individual sectors for a motor that incorporates three polepairs because each of the pole pairs are different and therefore, theperceived sector duration will be different between those pole pairs.

FIG. 5 also illustrates graphs 70, 72 for a more realistic motor wherethe positional errors are random, but limited to a +/−2 Electricaldegrees in the various sectors. Since the illustrated example involves athree pole pair motor, the +/−2 degrees of positional error on thelocation of the magnetic poles or in the placement of the Hall-effectsensors represents a +/−0.666 (or ⅔) degrees of mechanical error. Modernmanufacturing techniques can hold better tolerances than such anexample, however what is demonstrated in the examples of FIGS. 4 and 5has been observed in existing motors and therefore must be addressed. Asshown in the signal graph 72 of FIG. 5, the points 94, 96, 98 illustratethat the duration of every sector is different and the variation in theexample of FIG. 5 yields a duration variation as approximately 60electrical degrees+/−15%.

FIG. 6 represents data taken from an actual 5 pole-pair motor running atsteady state in order to show the variations in durations of thedifferent successive sectors from the standard sector duration for anideal motor scenario. FIG. 6 shows sector duration ratios of a singlesector duration to the total duration for a mechanical revolution (e.g.,1/30) in accordance with a feature of the invention. In graph 100 ofFIG. 6, the trace 102 is reflective of the ideal motor scenario whereinthe trace 104 reflects the actual sector duration for each differentsector number as a ratio of the length time or duration in that sectorversus the length of time or duration for all the sectors associatedwith the full mechanical duration for the motor. The data as shown inFIG. 6 covers one mechanical rotation of a motor. The sector duration asused in the present invention is expressed as the ratio:

Time duration_sector/Time duration_full mechanical rotation (allsectors).

SCE=sector count for an electrical resolution*PP=Pole Pairs of motor

In the example of a 5 pole pair motor (5 PP), the total sector number is6 sectors (SCE) times the 5 pole pairs=30. Therefore, for an idealsector, the ratio for the duration of one sector to the duration for thetotal number of sectors would be reflected as 0.0333333 as shown in FIG.6. However, the non-ideal motor yields non-ideal sector ratios due tothe non-ideal durations of the various individual sectors for aparticular pole pair of the motor. The mechanical inaccuracies of themotor are evident in FIG. 6, as every sector has a slightly differentduration. One could expect similar amplitudes of torque ripple if thosesector durations are directly used to estimate the motor speed.

With the inconsistencies of sector timing described above, measuringspeed quickly and accurately is thus difficult. In various availablemotor control schemes, the control circuitry or controller has to employsome kind of filtering to minimize the +/−15% or so fluctuation in thesector duration timing from the ideal scenario, in order to get a stablespeed signal. Moreover, if a controller is tuned for a particular motorand is configured to address that particular motor's timing jitter, thevariation in other motors and their location or position errors andsector duration differences means that there is no guarantee that thenext motor from a production line will exhibit the same levels of timingjitter. Accordingly, to handle a large number of different motorscenarios, developers and programmers addressing motor control need totune their various filters and control schemes and controllers for theworst case motor conditions in order for the controllers to handle allof the various situations. This introduces a lot of delay and adverselyinfluences other blocks of the controller, like the speed regulator.This is because any filtering applied to a signal in real-time causes adelay of the filtered signal. The more filtering that must be applied,the more delay that is introduced. As discussed herein, there is also astrange phenomenon that occurs as determined in the current invention,such that when dealing with timing jitter, more filtering does notalways yield a cleaner filtered signal for use in speed control andcommutation. Therefore, the present invention addresses the vagaries anddifferences in each unique motor and provides a unique control schemeand a way for predicting an accurate location of the rotor for getting astable speed signal for the motor and for controlling the torque that isdelivered.

The present invention improves on the efficient production of torque byproviding a more accurate prediction of the sector duration for eachindividual sector and each of the pole pairs of the motor. That accurateinformation, in turn, provides for the more precise relationship betweenthe generation of the flux between the rotor and stator elements. Forexample, if a controller uses sinusoidal or space-vector modulationtechniques, such control techniques require the ability to accuratelypredict the duration of each sector of the motor in the motor'smechanical revolution cycle. With an accurate sector durationmeasurement for each unique sector, the controller can properly andprecisely interpolate the location of the rotor and the rotor anglewithin a particular sector. As discussed herein, if the controllercannot use a precise prediction of how long every individual sectorlasts in duration, its rotor angle location estimation for the varioussectors will be in error. This location error then introduces torqueripple and torque inefficiency because the precise relationship betweenrotor flux and stator flux cannot be accurately maintained during motorcontrol and commutation.

In accordance with one feature of the invention, the control methodologytakes into account the timing jitter in the sector timing at steadystate and takes advantage of discovered patterns in that timing jitter.The patterns allow for minimization of the amount of filtering that isrequired for accurate speed measurement and therefore provide forminimization of the delay in the filtered speed signal that isdetermined. The invention also allows a controller utilizing the controlmethods as described herein to accurately predict the current motorsector's duration for each unique sector, and therefore allow foraccurate angle interpolation within the 60 degrees that the particularsector covers in the motor rotation. The present invention usesfiltering of the speed signal based upon portions of or multiples of thenumber of electrical sectors (SCE) for the motor. Specifically, thespeed signal is filtered based on multiples of SCE/2 or rather multiplesof half of the electrical cycle. That is, a moving sum size or averagefor the speed measurement is determined by the control circuitry basedupon a multiple of SCE/2. In that way, the control circuitry provides afast acquisition of speed values and provides for a determination ofdesirable sector information in accordance with the invention.

In accordance with another feature of the invention, the controller 22provides motor control using a ratio of a particular sector duration tothe overall duration of a complete mechanical revolution of the motor toaccurately predict the motor location in the control scheme. Using thefeedback signals 40 from the Hall-effect sensors, the control circuitry,at the steady state velocity of motor rotation measures the duration ofeach individual sector for the SCE*PP number of sectors that areassociated with a complete mechanical revolution of the motor. Thecontrol circuitry further measures the total duration of a completemechanical revolution of the motor through the sensors. The controlcircuitry creates a sector table and then stores the ratio of eachsector duration to the total duration of one complete mechanical cycle(motor revolution) in memory, such as memory in the field orientedcontrol circuitry 22. The ratios for each individual sector aremaintained in a created table each time the motor is operated. Inaccordance one embodiment of the invention, each time a motor isoperated, a new table is created by the control circuitry. In that way,any ongoing changes in the motor that may affect sector dynamics aretaken into account. Furthermore, if a motor is replaced and the controlcircuitry is operating a new motor with its own characteristics, theinvention is able to adapt to such a scenario and to map that uniquemotor and its own unique sectors through the sector ratios. The tablevalues are then used by the control circuitry for fast and accuratespeed calculations without significant delay. More specifically, thedelay is equal to the duration of one of the sectors. Furthermore, thesector duration values maintained by the control circuitry may be usedto provide information for each current sector to allow the controllerto know how long the motor will be in that specific current sector. Thecontrol circuitry then uses that sector duration information and theinterpolates the rotor angle position at a specific time through a 60degree (or other measured degree) sector. Because the sector informationis reflective of the actual motor sector for the specific motor ratherthan assumed ideal duration, the angular position is more precise.Knowing that more precise angular position for the current sector, thecontrol circuitry, such as the controller 22 then generates controlsignals for the various coils and rotates the magnetic flux such thatthe fluxes of the stator and rotor are maintained as close to a 90degree angle as possible for maximum torque production, maximum torqueefficiency and minimum torque ripple.

With respect to the filtering aspects of the present invention in thedetermination of motor speed and motor angle position, the duration ofany consecutive number of sectors that reflect one or more fullmechanical rotations of the motor will lower timing jitter. That is themeasured duration of any (N*SCE*PP) number of sectors at steady statewill have zero or close to zero timing jitter. However, because you haveto complete at least one full mechanical revolution this presents ahigher lag time for the controller 22 in acquiring a speed signal whenthe motor speed is changing. As the motor completes one mechanicalrevolution (SCE*PP), the process starts over and all constructionerrors, including magnetic errors and sensor placement errors, withinthe motor will repeat themselves. That is, the process is cyclical. Forexample, a 3 pole-pair (3PP) motor will go through SCE*PP=6*3=18electrical sectors for every mechanical rotation. If the controller 22were to measure the total duration of those 18 sectors, it would get avery low jitter measurement that can be used for a very accurate speedcalculation. That same rationale applies for total duration measurementsthat are multiples of such full rotation measurements, where N>1.Generally, it is very beneficial to keep N at 1 in order to shorten themeasurement time and minimize the delay that is introduced to the finalduration value. It is also very beneficial to keep a moving sum oraverage of size SCE*PP as the various sector durations are determined.This allows for all past SCE*PP sector durations to be summed. Also, thefiltered value of sector duration gets updated as every additionalsector is measured.

At steady state speed conditions of the motor rotation, the totalduration of the last SCE*PP sectors provides the cleanest speed signalpossible as noted, but it also introduces the most amount of lag inproviding a measurement when the actual speed of the motor changes.However, using a moving average of the duration of more or less than anSCE*PP number of sectors only increases the noise in the measurement.

In one embodiment of the invention, the speed measurement is determinedfrom a duration less that the SCE×PP sectors. The duration that isassociated with any consecutive SCE number of sectors provides a littlemore noise over the ideal N*SCE*PP measurement, but the measurement isprovided with less delay in the actual measurement taken by the controlcircuitry. If a controller measures a moving sum or average of thedurations of the last SCE number of sectors, it is in essence measuringthe time duration for the last electrical cycle of the motor. Within oneelectrical cycle, the ripple of the individual sector durations balancesout slightly to give a fairly good estimate of motor speed. However,because the electrical cycle durations are not exactly equal to eachother within one mechanical revolution, the noise in this method ofspeed determination is still present. But it is significantly less thatthe noise found using the durations of the individual sectors.

In accordance with one aspect of the invention, it has been found thatusing a moving sum or average of less than SCE number of sectorsincreases the noise of the resulting measurement drastically. However,using a moving sum or average of more than SCE number of sectors alsoincreases both noise and delay. The increase in noise and delay occursuntil the number of samples reaches some multiple of SCE number ofsectors and until it eventually reaches PP*SCE sectors. The presentinvention addresses the noise and delay issue by determining durationsof certain specific numbers of sectors. More specifically, the inventiondetermines durations of an SCE/2, SCE and PP×SCE number of sectors anduses those numbers of sectors as needed for determining motor speed.

In accordance with one aspect of the invention, the duration for anSCE/2 number of sectors is measured by the control circuitry and is usedfor determining the duration for a complete mechanical rotation of themotor. The measured duration of any consecutive half of the electricalcycle or SCE/2 number of sectors provides the smallest and therefore theleast delayed measurement that is useful. This measurement representsonly half of an electrical cycle for a full electrical cycle of SCEsectors, so the individual sector ripple does not balance out as well aswith the other methods, such as using SCE sectors. However, using adetermined duration of SCE/2 sectors (or a multiple thereof) for themoving sum or average still provides better ripple than the individualsector duration measurements. To that end, a controller can keep amoving sum or average of the last SCE/2 sector durations in order tohave a speed estimate with minimal delay from the actual speed of themotor.

The present invention stays away from using a moving sum that deviatesfrom such specific number of sectors and sector multiples, even thoughusing durations for a greater number of sectors would seemingly be moreaccurate. Such a discovery in the invention is counter-intuitive tomotor control because more filtering and input data used usually meansless noise. However, the inventors have found that if the controllerwere to keep a moving sum or average different than the selectedmultiple of sectors, for example (SCE/2)+1 sectors then the resultingsignal has more noise. Such a discovery in the invention iscounter-intuitive to motor control because as noted more filteringusually means less noise. In accordance with a feature of the invention,when maintaining moving sums or averages for cyclic machines, such as apermanent magnet synchronous motor (PMSM) it is beneficial to set thesizes of those moving sums or averages to be some multiple of half ofthe sector count for a complete electrical cycle (SCE), or rather(SCE/2). That is, the moving sums or averages are set to the sizes thatrepresent multiples of half of the sector count go a complete electricalcycle.

In accordance with that feature of the invention, FIG. 7 shows a graph110 of normalized noise versus the size of a running sum or average forcalculating motor speed in accordance with the invention. Referring tothe graph of the normalized noise trace in the graph 110, we would seeminimums at the specific locations of SCE/2 sectors as shown in point112, and minimums as well at locations of other multiples of SCE/2sectors, such as SCE, N*SCE sectors. The deepest minimum is illustratedat a full mechanical rotation of P*SCE as shown in point 114. The noisein the chart is normalized to the worst single sector noise. The Y axisvalues in the graph 110 are not definitive. They simply illustrate theprinciple of where the minimums occur using the present invention. Theabove-described effects are not limited to moving sums and averages.They can be implemented with other filter architectures. We are usingthe moving sum as a clean and simple approach, but the invention is notlimited to using moving sums and averages.

Generally, a motor controller and control circuitry has no priorknowledge of the Hall-effect sensor placement errors and the magneticpole location errors that are present in a particular motor that isbeing controlled. Therefore, the controller cannot predict the variationof sector durations in the motor from an ideal motor configuration.Therefore, as noted, past control schemes just assume ideal situationsor make assumptions not based on the real configuration of anyparticular unique motor. In accordance with an aspect of the presentinvention, the various relationships regarding speed measurements forminimizing noise and providing minimal delay are used to determinevariations in the sector durations in order to provide faster and moreaccurate speed calculations and more accurate and efficient torque.

Specifically, when a motor is first operated, the circuitry, such ascontroller 22 in one embodiment evaluates durations of the sectors andkeeps a running sum of the duration of SCE/2 sectors, SCE sectors andPP×SCE sectors. With those values, the motor can calculate early speedfigures. For example, if you only have SCE sectors for an electricalrotation, you can multiply by the PP number of poles and use thatinformation for the duration of the full mechanical rotation for amotor. Then, when the controller identifies that the motor is running ata steady state speed, the controller measures the individual durationsfor the various sectors. The controller then stores the informationregarding all of the determined sector durations. In one embodiment ofthe invention, the controller determines a ratio of each particularsector duration to the total time duration it takes for the motor tocomplete one mechanical revolution. The ratio data is stored for eachmotor sector, such as in the controller memory or other memory. The datamay be stored in a table, for example, for each unique sector. The totaltime for a complete mechanical revolution is reflective of all thedifferent sector durations associated with the motor sectors defined bythe Hall-effect sensors and the various pole pairs (PP) of the motor.That is, the total number of sectors to evaluate and store is (PP*SCE).

When the controller 22 is initially powered, it stores ideal sectorvalues for the sectors of the motor. An example of such evaluation usingan ideal 3 pole pair (PP) motor will result in a total of 18 sectors(3×6 sectors), with each ideal sector having a duration ratio of 1/18thor 0.055555 . . . or 0.0(5). Specifically, in an ideal scenario andmotor, every measured sector duration will last the same length of timeand will be exactly 1/(PP*SCE) or 1/18-th of the total duration of onemechanical revolution of the motor. As noted below, the ideal values caninitially be used to populate the table until refined.

FIG. 11 illustrates a controller flow in accordance with an embodimentof the invention. The controller flow is executed by the controller 22and processor and memory elements therein as conventional for controland commutation of the motor. The control circuitry for implementing theinvention can take any number of configurations, and so theconfiguration as disclosed is not limiting to the invention. Although acontroller element 22 having processing and memory functionality mayimplement various functional steps of the invention, such function maybe distributed in other elements of the processing circuitry. Once amotor is running as in block 150 a determination is made by thecontroller to see the motor is running at a steady state speed. Block152. If it is not, the initial table values reflective of an ideal motorare used for the purposes of speed and angle determination. Whencontroller 22 powers up for operation of the motor, the controllerpopulates a table with the theoretical values and ratios for an idealmotor. The ideal table values can and are used for motor control, atleast initially. That is, for example, ideal 60 degree sectors may beassumed. The pre-populated table is used for the interpolation of therotor angle of the motor as discussed herein. However, as noted, theideal values that are used for the calculations are for a non-idealmotor, and so those initial values will produce torque ripple and extranoise. As time goes on, however, the table is refined in accordance withthe invention. If the motor is at steady state, the table is updatedthrough sector duration measurements that determine the actual or moreprecise sector duration and characteristics for each unique sector. Tothat end, the table for population and updating is defined for the totalnumber of (PP×SCE) sectors, such as a total of 18 sectors for a 3 PPmotor. Block 154. The running duration sum for a mechanical revolutionis measured. Such a sum will generally be available for the runningmotor, but the mechanical revolution duration reflective of steady stateconditions is measured and determined for the motor. Block 156. Then foreach last sector or previous sector that a rotor was in, a duration timeis measured. That measured most recently completed sector duration isratioed to the running duration sum for a full mechanical revolutionduration. Block 158. That ratio is updated in the table of thecontroller 22. In one embodiment, the table value is overwritten withthe new measured and determined value. In another embodiment, the newlydetermined value is averaged with the old or current value and the tableis updated with the value as an average of the new and old values. Stillfurther, the updating may be even more gradual. In another embodiment,the existing or current values in the table are updated or modified by ascaled version of the difference between the newly measured value andthe old/current table value. That is, you store the old table value asvaried by the addition of some scaled version of the difference (newvalue−old/current value) for the table.

In any case, the table is updated with the last sector duration ratiovalue in order to make the table reflect a fingerprint of thecharacteristics of the particular motor. This is repeated for eachsuccessive sector measured during steady state movement of the motor.Block 160. The updated table values of the sector duration ratios arethen available for use in calculating motor velocity and angles of therotor in a sector for use in motor commutation. Block 162. The angleinterpolation and other control parameters that use the more accuratevalues of the refined table are more accurate as well, causing thetorque ripple and noise to be minimized for a motor operated using theinvention.

The table is only updated at steady state but the values of the tableare used all of the time, even as the speed of the motor changes. Astime progresses, the table values will be refined during times of steadystate movement/speed of the motor.

The table and the sector duration ratio values are monitored inaccordance with the invention by the controller 22 to determine howsignificantly the values change in the update cycles for each sector.That is, in accordance with one aspect of the invention, the controllermay use the ideal values for a period of time until the more accuratevalues are established in the table. The controller may use certainideal values (i.e., assuming ideal sector durations) and use SCE/2 orSCE sector averages to determine the full rotational duration, velocityand angles until the table has been determined to have good stablevalues and ratios for each sector. A particular variation threshold maybe used by the controller to designate the measured table values assuitable to be used in the calculations. For example, if the tablevalues are only varying slightly (e.g., by 1-2% in the update) and thevariation meets the variation threshold then they may be designated asacceptable and then the controller may start using the table values forspeed and angle determination. Other variation thresholds may be used tomonitor if the table duration ratios have settled to an accurate state.

As noted herein, an example of such evaluation using an ideal 3PP motorwill result in a total of 18 measured sectors (3×6 sectors), with eachideal sector having a duration ratio of 1/18th or 0.055555 . . . or0.0(5). That is, every sector will last the same length of time and willbe exactly 1/18-th of the total duration of one mechanical revolution.An ideal table might be used for the purposes of motor control until amore accurate measured sector table can be provided in accordance withthe invention. In determining the information for a typical andnon-ideal motor, the controller 22 establishes a table (Block 154) thatmay be preset to the ideal values for each sector on initialization ofthe controller process. FIG. 8 illustrates an embodiment of a table 120that includes a plurality of sectors 122 with each duration ratio entryreflective of a ratio value 124 for the particular sector durationversus the total duration for a single mechanical rotation of the motor.FIG. 8 shows the ideal table values 124 for an 18 sector motor scenario.In accordance with the invention, as the real sector durations aredetermined, the table values 124 are updated by the controller. As notedabove, the various sector designations, for a 3 pole pair (PP) motor,will repeat every 6 sectors. As is shown in FIG. 8 the actual sectorsare designated as 6, 4, 5, 1, 3, 2, which then are repeated for eachpole pair of the motor. As such, this will allow each individual sectorto have its own duration value based on a unique pole pair location,even though from a designation of the particular electrical sector, theymay share the same designation. That is, each of the repeated sectorswill have different values reflecting the unique sector for a particularpole pair in the motor. There are a total of 18 sectors defined for asix sector motor and 3 pole pairs.

As the motor moves, the pole pairs will pass through the various sectorsand can measure the duration in each sector and can update the table 120one sector duration value at a time either forward or backward,depending on the direction of travel of the motor. FIG. 9 illustratesthe sector update progress through the table 120 both in a clockwisedirection on top wherein the last sector 124 is to the left of thecurrent sector 126 and in a counterclockwise direction where the tablelast sector 124 is to the right of the current sector 126. As notedherein, a sector can have a numerical representation (ex. 6, 4, 5, 1, 3,2), and in a multi-pole-pair motor, there are PP individual sectors thatwill have the same numerical representation. In the table 120 of FIG. 9,the various sectors are designated with a continuous nonrepeatingsequence 1-18, but as noted with FIGS. 3-5, 8 the sectors couldgenerally have the same sector designation but different durations. Thedata in table 120 of FIG. 10 illustrates various sector durations,indicated as ratios, after measurement and processing in accordance withthe invention. The various sectors indicated as 130, 132, 134 arereflective of sectors that have different durations, all of which varyfrom the original ideal values of 0.0555 as noted in FIGS. 8 and 9. Thecontroller differentiates between the various different durations andrespective electrical sectors because the table 120 stores the durationvalues with a total size of (SCE*PP), or 18 in the discussed example.The table 120 of FIG. 10 has sector values that may be used for fastspeed determinations for the motor and for angular determination of theposition of the rotor for torque control in accordance with theinvention.

In accordance with one feature of the invention, as the motor passesthrough moments of steady state, the controller 22 of the invention canevaluate the duration of the various sectors and determine the ratios.The controller then refines the data for the individual sectors in thetable 120. At steady state, the controller can use an SCE*PP movingduration sum of a full rotation for a very accurate speedrepresentation, and then can calculate the ratio of the duration of thelast measured sector to this moving full rotation sum. This provides anupdated value for the last sector that the controller stores in thetable.

In accordance with a feature of the invention, the stored table valuecan be used for speed calculations and other calculations, even when themotor is not at steady state. For example, the previously determined andstored table values may be used even during acceleration or decelerationof the motor. The controller maintains a table of SCE*PP values whereevery value represents one of the SCE*PP sectors that the motor can bein. As the motor operates, the controller further refines those valuesto better reflect the individual sector durations. As described herein,one of several update methods may be used. Eventually, the table willhold values that reflect the actual and more accurate durations of theindividual sectors. In accordance with one aspect of the invention, itis beneficial to store the sector durations as a ratio of their actualtime duration to the time duration of one mechanical rotation. Whenstored as such a ratio, the controller can use the data for very fastand accurate speed measurements, with zero delay.

More specifically, since the duration of the last sector was alsomeasured as a time interval, and the controller has already calculatedand stored the ratio of the sector's duration to the duration of onemechanical revolution, the controller can rapidly determine speed usingthe table values as a calculation of:

V = R_ls/T_ls

Where:

-   -   V is the mechanical frequency or speed of the motor (in        rotations per second).    -   T_Is is the time the motor spent in the last sector.    -   R_Is is the value from the sector duration table that        corresponds to the last sector the motor was in.

The result of the speed calculation for motor control using themethodology of the invention is very accurate and fast and with verylittle noise because the table values compensate for the inaccuracies inthe motor and the differences in the sector durations between sectors.The measured duration table values are available immediately. The resultalso has close to zero delay because the speed calculation is based on ameasurement that was just previously completed. That is, the motor justfinished passing through the last sector that is used in thecalculation.

Initially, on motor power up, the sector durations table 120 will holdthe ideal values (See FIG. 8) and the resulting calculated speed signalwill be noisy. As the controller 22 controls and spins the motor, itrefines the values in the table until the table values represent thetrue motor sector durations for each sector of the motor as reflectedfor example in table 120 of FIG. 10. This refinement takes into accountall the unique sectors for the motor and all the unique and various polepairs in the motor in combination with the unique sectors. Once thesector durations are calculated and the table is updated, the speederror is practically zero because all of the Hall-effect sensorplacement errors and magnetic pole errors are compensated for by thetable values in each sector that reflect the unique pole pairs andunique sectors.

Furthermore, once the table values have been refined by the controllerin accordance with the invention, the resulting speed is valid even ifthe motor's speed is rapidly changing. This allows the controller 22 tovery quickly react to load and speed changes on the motor. Such a quickreaction by the controller is very useful in high performance motorcontrol in various control applications, such as in servos, robots,actuators, etc.

Another benefit of the individual sector evaluation and the sectorduration table of the invention is that once it has been refined torepresent the actual sector durations of the motor, it provides data forthe current sector that the motor is in. As the motor leaves one sectorand enters another following sector, the controller needs to be able topredict how long the motor will then spend in that next, current sector.The controller needs this information so that it can accuratelyinterpolate the rotor angle throughout the generally 60 degree sectorand thereby control the motor flux conditions, in such a way that itmaintains, as close as possible, the flux of the stator at 90 degreeswith respect to the rotor.

More specifically, in one embodiment, the controller 22 of the inventionaccurately interpolates the rotor angle of the motor throughout thegenerally 60 degree sector using the duration ratio values of the table.Knowing that angle, the controller rotates the stator's magnetic flux insuch as way as to maintain, as close as possible, a 90 degree angle tothe rotor's magnetic flux, for maximum torque production, maximumefficiency and minimum torque ripple. The controller 22 uses the tableof sector values to provide accurate angular location information andspeed information for any motor in order to provide precise torquecontrol without the need for expensive encoders. Instead, the presentinvention provides improved control using conventional Hall-effectsensors while providing a level of precision normally requiringencoders.

To that end, the controller 22 first measures the accurate speed of themotor based on the last sector, as set forth herein. Then the controller22 uses the stored duration ratio table value for the current sector itis entering to determine how long the motor will then spend in thatcurrent sector based on the motor speed or velocity determined from theprevious or “last sector”. Specifically, the controller determines thatduration time that the motor will spend in the current sector asfollows:

T_cs = (T_ls/R_ls) * R_cs

Where:

-   -   T_cs is the duration time the motor will spend in the current        sector.    -   R_cs is the value from the sector duration table that        corresponds to the current sector the motor just entered.

V = R_ls/T_ls

Generally, during a sector, an ideal motor would rotate a total of 60degrees, but using the invention, a non-ideal motor will be found torotate a different amount. In accordance with the invention, the tableof stored sector ratio values may be used to evaluate the rotation anglespan for a particular sector. The angle of the sector may also bedetermined. The electrical angle span for a particular sector of themotor might be determined by the following:

A = R_cs * PP * 360.

Where:

-   -   A is the actual sector electrical angle in degrees.    -   R_cs is the value from the sector duration table that        corresponds to the current sector the motor just entered.

The information of the more accurate angular rotation in a particularsector, as well as the time that is spent in that current sector, asprovided by the invention provides a more accurate control for providingthe desired 90 angle for the stator and rotor flux orientation. Thecontroller 22 now has two key pieces of information it uses for motorcontrol. The angle it needs to interpolate over for a sector and thetime for the interpolation as the motor progresses through the sector.Using the angle of the sector and time spent in the sector, thecontroller 22 can accurately track the rotor's angle in the sector andconsequently apply the proper voltages to the various motor coils tocreate a magnetic field that is at a 90 degree orientation to therotor's field. With the information of the invention knowing theaccurate time in the current sector as well as the more accurate angleof the sector, the electrical field may be adjusted to obtain anorthogonal flux field as desired for efficient torque delivery inaccordance with known motor control processes. In one embodiment of theinvention the table information might be updated at 10-50 kHz for motorcontrol.

The 90 degrees torque orientation noted herein is just an example for aPMSM motor operated without significant field weakening. Other motorsmight also be controlled using the invention and may operate underdifferent conditions that may require more or less of an angle betweenthe rotor and the generated magnetic field. The same principles wouldapply as discussed herein because the controller still has to generate amagnetic field at a certain angle relative to the rotor's angle usingthe features of the invention. For example, the invention herein mightbe used with an Interior Permanent Magnet Synchronous Motor, where thetarget angle may vary with load due to the reluctance of the rotor.

The routines executed by the controller 22 or other control circuitry toimplement the embodiments of the invention, whether implemented as partof an operating system or a specific application, component, program,object, module or sequence of instructions executed by one or moredevices/controllers and/or control systems/computing systems will bereferred to herein as a “sequence of operations,” a “program product,”or, more simply, “program code.” The program code run by the controller22 or other control circuitry will typically comprise one or moreinstructions that are resident at various times in various memory andstorage devices in a controller and/or computing system, and that, whenread and executed by controllers and/or a computing system, cause thatcontroller and/or computing system and control circuitry to perform thesteps necessary to execute steps, elements, and/or blocks embodying thevarious aspects of the invention. The control circuitry has sufficientprocessing circuitry for evaluating and determining the speed of themotor and the duration of the motor in each sector the control signals,storing the sector duration values and ratios, and using the ratiovalues for proper position and torque control of the motor.

While the present invention has been illustrated by the description ofthe embodiments thereof, and while the embodiments have been describedin considerable detail, it is not the intention of the applicant torestrict or in any way limit the scope of the appended claims to suchdetail. Additional advantages and modifications will readily appear tothose skilled in the art. Therefore, the invention in its broaderaspects is not limited to the specific details representative apparatusand method, and illustrative examples shown and described. Accordingly,departures may be made from such details without departure from thespirit or scope of applicant's general inventive concept.

What is claimed is:
 1. A motor system comprising: a motor including arotor and a stator; a plurality of sensors positioned in the motor fordefining a plurality of electrical sectors of the motor through whichthe motor will rotate; control circuitry for operating the motor andcontrolling the motor, the control circuitry configured for: determiningif the motor is rotating at a steady state velocity; at the steady statevelocity, using the sensors and measuring the duration that the motorspends rotating within each of the plurality of electrical sectors;using a plurality of the measured durations within electrical sectorsand determining the duration of a complete mechanical rotation of themotor through all of the electrical sectors; determining a value of aratio of the measured duration of the motor in a particular sector tothe duration of the complete mechanical rotation of the motor; storingthe determined ratio values of sector duration to complete mechanicalrotation duration; controlling the motor using the determined sectorratio values.
 2. The motor system of claim 1 wherein the controlcircuitry is further configured for determining the velocity at whichthe motor rotates using at least one of the determined sector ratiovalues.
 3. The motor system of claim 1 wherein the control circuitry isfurther configured for determining the time the motor spends in aparticular sector using at least one of the determined sector ratiovalues and using the determined time in the particular sector forcontrolling the motor.
 4. The motor system of claim 1 wherein thecontrol circuitry is further configured for determining an electricalangle of a particular electrical sector using at least one of thedetermined sector ratio values and using the determined electrical angleof the particular electrical sector for controlling the motor.
 5. Themotor system of claim 1 wherein the control circuitry is furtherconfigured for storing the determined sector ratio values in a table andupdating current values in the table with newly determined values as themotor rotates at a steady state speed.
 6. The motor system of claim 5wherein the control circuitry is further configured for updating valuesin the table replacing a current value for an electrical sector with atleast one of a newly determined value for that same sector, an averageof the current value and a newly determined value, or the current valueas modified by a scaled version of the difference between the newlymeasured value and the current value.
 7. The motor system of claim 1wherein the control circuitry is further configured for determining theduration of a complete mechanical rotation of the motor through all ofthe sectors using only a portion of a total number of electrical sectorsof the motor.
 8. The motor system of claim 7 wherein the motor has atotal number SCE of electrical sectors of the motor, the controlcircuitry is further configured for using at least a multiple of SCE/2sectors for determining the duration of a complete mechanical rotationof the motor through all of the sectors.
 9. The motor system of claim 5wherein the control circuitry is further configured for initiallycontrolling the motor using the ideal sector ratio values, andmonitoring the variation between the current table values and the newlydetermined values and controlling the motor using the determined sectorratio values when the variation meets a variation threshold.
 10. Acontroller for controlling a motor including a rotor, a stator and aplurality of sensors positioned in the motor for defining a plurality ofelectrical sectors of the motor through which the motor will rotate; thecontroller configured for: determining if a motor is rotating at asteady state velocity; at the steady state velocity, using sensors ofthe motor and measuring the duration that the motor spends rotatingwithin each of the plurality of electrical sectors; using a plurality ofthe measured durations within electrical sectors and determining theduration of a complete mechanical rotation of the motor through all ofthe electrical sectors; determining a value of a ratio of the measuredduration of the motor in a particular sector to the duration of thecomplete mechanical rotation of the motor; storing the determined ratiovalues of sector duration to complete mechanical rotation duration;controlling the motor using the determined sector ratio values.
 11. Thecontroller of claim 10 further configured for determining the velocityat which the motor rotates using at least one of the determined sectorratio values.
 12. The controller of claim 10 further configured fordetermining the time the motor spends in a particular sector using atleast one of the determined sector ratio values and using the determinedtime in the particular sector for controlling the motor.
 13. Thecontroller of claim 10 configured for determining an electrical angle ofa particular electrical sector using at least one of the determinedsector ratio values and using the determined electrical angle of theparticular electrical sector for controlling the motor.
 14. Thecontroller of claim 10 configured for storing the determined sectorratio values in a table and updating current values in the table withnewly determined values as the motor rotates at a steady state speed.15. The controller of claim 14 wherein the control circuitry is furtherconfigured for updating values in the table replacing a current valuefor an electrical sector with at least one of a newly determined valuefor that same sector, an average of the current value and a newlydetermined value, or the current value as modified by a scaled versionof the difference between the newly measured value and the currentvalue.
 16. The controller of claim 10 further configured for determiningthe duration of a complete mechanical rotation of the motor through allof the electrical sectors using only a portion of a total number ofelectrical sectors of the motor.
 17. The controller of claim 16 whereinthe motor has a total number SCE of electrical sectors of the motor, thecontroller further configured for using at least a multiple of SCE/2sectors for determining the duration of a complete mechanical rotationof the motor through all of the electrical sectors.
 18. The controllerof claim 14 further configured for initially controlling the motor usingthe ideal sector ratio values, and monitoring the variation between thecurrent table values and the newly determined values and controlling themotor using the determined sector ratio values when the variation meetsa variation threshold.